import { Geometry } from './geometry'

/**
 * @ClassName polyline
 * @Description 线
 * @Author xuyizhuo
 * @Date 2024/1/20 14:06
 */
export class Polyline extends Geometry {
    private _coordinates: number[][]

    constructor(coordinates: number[][]) {
        super()
        this._coordinates = coordinates
    }

    // 绘制图形
    draw(ctx: CanvasRenderingContext2D) {
        // 保存当前的绘制状态
        ctx.save()
        // 设置线的颜色、线宽
        ctx.strokeStyle = '#ff0000'
        ctx.lineWidth = 2
        // 开始绘制线
        ctx.beginPath()
        // 根据点击的坐标绘制线
        for (let i = 0; i < this._coordinates.length; i++) {
            const [x, y] = this._coordinates[i]
            // 如果是第一个点，画笔移动到起始点就可以了
            if (i === 0) {
                ctx.moveTo(x, y)
            } else {
                ctx.lineTo(x, y)
            }
        }
        // 使用画线样式对线描边
        ctx.stroke()
        // 将 canvas 恢复到最近的保存状态的方法。
        ctx.restore()
    }
}
